import { BasicColumn, FormSchema } from '/@/components/Table';
import { h } from 'vue';
import { Tag } from 'ant-design-vue';

export const columns: BasicColumn[] = [
  {
    title: '学生姓名',
    dataIndex: 'name',
    width: 120,
    align: 'center',
  },
  {
    title: '学生卡号',
    dataIndex: 'stid',
    align: 'center',
    width: 120,
  },
  {
    title: '卡号硬件ID',
    dataIndex: 'cid',
    align: 'center',
    width: 120,
  },
  {
    title: '一卡通账户',
    dataIndex: 'account',
    align: 'center',
    width: 120,
  },
  {
    title: '身份证号',
    dataIndex: 'idcard',
    align: 'center',
    width: 180,
  },
  {
    title: '宿舍房间号',
    dataIndex: 'room',
    align: 'center',
    width: 120,
  },
  {
    title: '注册时间',
    dataIndex: 'rtime',
    align: 'center',
    width: 180,
  },
  {
    title: '生效时间',
    dataIndex: 'stime',
    align: 'center',
    width: 180,
  },
  {
    title: '失效时间',
    dataIndex: 'etime',
    align: 'center',
    width: 180,
  },
  // {
  //   title: '学生状态',
  //   dataIndex: 'state',
  //   align: 'center',
  //   width: 120,
  //   customRender: ({ text }) => {
  //     return h(Tag, { color: text == 1 ? 'green' : 'red' }, () => (text == 1 ? '有效' : '已失效'));
  //   },
  // },
  {
    title: '是否过期',
    dataIndex: 'expireState',
    align: 'center',
    width: 120,
    customRender: ({ text }) => {
      return h(Tag, { color: text == 1 ? 'red' : 'green' }, () => (text == 1 ? '已过期' : '未过期'));
    },
  },
];

export const searchFormSchema: FormSchema[] = [
  {
    field: 'name',
    label: '学生姓名',
    component: 'Input',
    colProps: { span: 6 },
  },
  {
    field: 'stid',
    label: '学生卡号',
    component: 'Input',
    colProps: { span: 6 },
  },
  {
    field: 'account',
    label: '一卡通账户',
    component: 'InputNumber',
    componentProps: {
      controls: false,
      placeholder: '请输入',
    },
    colProps: { span: 6 },
  },
  {
    field: 'rtime',
    label: '生效时间',
    component: 'RangePicker',
    colProps: { span: 6 },
    componentProps: {
      //是否显示时间
      showTime: true,
      //日期格式化
      format: 'YYYY-MM-DD HH:mm:ss',
      valueFormat: 'YYYY-MM-DD HH:mm:ss',
      //范围文本描述用集合
      placeholder: ['请选择开始日期时间', '请选择结束日期时间'],
    },
  },
  {
    field: 'room',
    label: '宿舍房间号',
    component: 'Input',
    colProps: { span: 6 },
  },
  // {
  //   field: 'state',
  //   label: '学生状态',
  //   component: 'RadioGroup',
  //   componentProps: {
  //     //options里面由一个一个的radio组成,支持disabled禁用
  //     options: [
  //       { label: '有效', value: 1 },
  //       { label: '已失效', value: 0 },
  //     ],
  //   },
  //   colProps: { span: 6 },
  // },
  {
    field: 'expireState',
    label: '过期状态',
    component: 'RadioGroup',
    componentProps: {
      //options里面由一个一个的radio组成,支持disabled禁用
      options: [
        { label: '未过期', value: 0 },
        { label: '已过期', value: 1 },
      ],
    },
    colProps: { span: 6 },
  },
];

export const formSchema: FormSchema[] = [
  {
    label: '主键',
    field: 'idx',
    component: 'Input',
    show: false,
  },
  {
    label: '学生姓名',
    field: 'name',
    component: 'Input',
    required: true,
  },
  {
    label: '学生卡号',
    field: 'stid',
    component: 'Input',
    required: true,
  },
  {
    label: '卡号硬件ID',
    field: 'cid',
    component: 'Input',
    required: true,
    ifShow: ({ model }) => {
      return !model['idx'];
    },
  },
  {
    label: '一卡通账户',
    field: 'account',
    component: 'Input',
    required: true,
    ifShow: ({ model }) => {
      return !model['idx'];
    },
  },
  {
    label: '身份证号',
    field: 'idcard',
    component: 'Input',
  },
  {
    label: '宿舍房间号',
    field: 'room',
    component: 'Input',
  },
  {
    label: '生效时间',
    field: 'stime',
    component: 'DatePicker',
    componentProps: {
      //日期格式化，页面上显示的值
      format: 'YYYY-MM-DD HH:mm:ss',
      //返回值格式化（绑定值的格式）
      valueFormat: 'YYYY-MM-DD HH:mm:ss',
      //是否显示今天按钮
      showToday: true,
      showTime: true,
    },
  },
  {
    label: '失效时间',
    field: 'etime',
    component: 'DatePicker',
    componentProps: {
      //日期格式化，页面上显示的值
      format: 'YYYY-MM-DD HH:mm:ss',
      //返回值格式化（绑定值的格式）
      valueFormat: 'YYYY-MM-DD HH:mm:ss',
      //是否显示今天按钮
      showToday: true,
      showTime: true,
    },
  },
];
